﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Globalization;
using LocalServerApp;


namespace Client
{
    class Sygesikring : KortType
    {
        private string cardIdentifier = "%";        // et stykke unikt string fra den specifikke kortType
        private int lenghtIdentifier = 117;         // Kortets længde.
        private string name = "Sygesikring";
        
        public Sygesikring()
        {
        }

        /// <summary>
        /// Metoden undersøger om den indsamlet data matcher dette kort, og retuner
        /// true eller false herefter.
        /// </summary>
        /// <param name="recogniseString"></param>
        /// <param name="cardInput"></param>
        /// <returns></returns>
        public bool recogniseCardType(string recogniseString)
        {
                if (recogniseString.Length == lenghtIdentifier && recogniseString.Contains(cardIdentifier))
                { return true; }
                else { return false; }
            }
        
      
        /// <summary>
        /// Dataen til det aktuelle kort bliver opdelt og formateret, hvor efter
        /// der bliver oprettet og retuneret et person objekt med den aktuelle
        /// information.
        /// </summary>
        /// <param name="cardString"></param>
        /// <returns></returns>
        public Person getCardInfo(string cardString)
        {
            Person p = new Person();
            String name = cardString.Substring(1, 34);
            String cpr = cardString.Substring(86, 10);
            p.Adress = cardString.Substring(35, 34);
            p.Zipcode = cardString.Substring(72, 4);
            string[] names = name.Split('&');
            names[0] = names[0].Trim();
            names[1] = names[1].Trim();
            String na = names[1] + " " + names[0];
            TextInfo myTI = new CultureInfo("en-US", false).TextInfo;
            String convertName = myTI.ToLower(na);
            p.Name = myTI.ToTitleCase(convertName);          
            p.Birthday = cpr.Substring(0, 6);         
            p.HashIdentifier = cpr;
            if (Int32.Parse(cpr.Substring(9, 1)) % 2 == 0)
            {
                p.Male = false;
            }
            else {
                p.Male = true;
            }
            return p;
        }

        public string getCardName()
        {
            return name;
        }

    }
}
